Video game program, video game device, and video game control method

ABSTRACT

An object is to realize that an object is caused to move based on the acceleration data detected by an acceleration sensor when a controller is moved and the controller is caused to vibrate by a vibration mechanism when the moved object makes contact with another object. In the present game program, velocity magnitude data of a controller and velocity magnitude data of an object are calculated based on acceleration data and time interval data, both of which are recognized by a control unit. Then, it is judged by the control unit whether or not the coordinate data within the display range of a moving bat character corresponds to the coordinate data within the display range of a ball character. Next, vibration control data for controlling vibration of the controller is calculated by the control unit depending on the velocity of the bat. Accordingly, a command for outputting the vibration control data to the controller is issued by the control unit.

CROSS-REFERENCE TO THE RELATED APPLICATION

This application claims priority to Japanese Patent Application No.2005-372072 and International Patent Application No. PCT/JP2006/321230.The entire disclosure of Japanese Patent Application No. 2005-372072 andInternational Patent Application No. PCT/JP2006/321230 is herebyincorporated herein by reference.

BACKGROUND ON INVENTION

1. Technical Field

The preset invention relates to a video game program, particularly to avideo game program for causing a computer to realize a video game inwhich a plurality of objects are displayed on an image display unit, andan object is caused to move based on the acceleration data detected byan acceleration sensor when a controller in which the accelerationsensor and a vibration mechanism are embedded is moved, and thecontroller is caused to vibrate by the vibration mechanism when themoved object makes contact with another object. Also, the presentinvention relates to a video game device that is capable of executingthe video game to be realized by the video game program, and relates toa video game control method for allowing a computer to control the videogame to be realized by the video game program.

2. Background Art

Various video games have been proposed in the past. The video games areconfigured to be executed in a game device. For example, a general gamedevice includes a monitor, a game console that is provided separatelyfrom the monitor, and an input unit (e.g., a controller) that isprovided separately from the game console. An input part (e.g., aplurality of input buttons) is disposed on the controller. A game deviceof this type is configured to be capable of causing an object displayedon the monitor to perform an action by manipulating the input buttons.

A situation is hereinafter considered that a versus-type game (e.g.,baseball game) is executed in a game device of this type. In thebaseball game, it is possible to cause an object displayed on a monitor(e.g., a bat of a batter character) to perform an action by manipulatinginput buttons of a controller. JIKKYOU PAWAFURU PURO YAKYU 9 KETTEIBAN,Konami Corporation, for PS2 discloses such game, as an example. In thiscase, first of all, either a contact hitting cursor is set to either apowerful swing mode or a normal swing mode by pressing a contact hittingcursor selection button. Then, when up, down, right, and left portionsof a cross-shaped button are pressed, the contact hitting cursoraccordingly moves up, down, right, and left. Next, if an X button ispressed so that a bat is capable of hitting a ball when the ballreleased by a pitcher character reaches a ball passing position on ahitting surface, the batter character starts swinging the bat.Accordingly, the bat displayed on the monitor starts moving at theconstant velocity. Then, if the pitched ball is capable of being hitwith the bat moving on the monitor when the pitched ball reaches thehitting surface, the pitched ball is hit back with the bat. Here, thecontroller is configured to vibrate in a weak vibration pattern when thebat makes solid contact with the ball, and is configured to vibrate in astrong vibration pattern when the bat did not make solid contact withthe ball.

SUMMARY OF INVENTION

In the conventional baseball game, a controller is configured to vibrateeither in a vibration pattern for a condition that a bat could makesolid contact with a ball or in a vibration pattern for a condition thata bat could not make solid contact with a ball. Accordingly, a gameplayer is capable of experiencing a sense that a batter feels when hehits a ball in the real baseball by means of the controller's vibrationin a simulated way. However, the sense that a batter feels when he hitsa ball in the real baseball is largely influenced not only by whether ornot a bat could make solid contact with a ball but also the magnitude ofthe swing velocity of a batter. For the purpose of allowing a gameplayer to experience the above described sense with the controller in asimulated way, it is necessary to evaluate the swing velocity of abatter such as the moving velocity of a bat displayed on a monitor andto create the data for causing the controller to vibrate based on theevaluation. However, the conventional baseball game could notappropriately evaluate the moving velocity of a bat, that is, the swingvelocity of a batter. Therefore, it has been difficult to cause acontroller to vibrate depending on the swing velocity of a batter when aball is hit with a bat.

An object of the present invention is to make it possible to cause anobject to move based on the acceleration data detected by anacceleration sensor when a controller in which the acceleration sensorand a vibration mechanism are embedded moves, and to cause thecontroller to vibrate with the vibration mechanism when the moved objectmakes contact with another object.

A video game program in accordance with a first aspect of the presentinvention is a program for causing a computer, which is configured to becapable of realizing a video game in which a plurality of objects aredisplayed on an image display unit and an object is caused to move basedon the acceleration data detected by an acceleration sensor when acontroller in which the acceleration sensor and a vibration mechanismare embedded is moved and the controller is caused to vibrate by thevibration mechanism when the moved object makes contact with anotherobject, to realize the following functions.

(1) An object displaying function of displaying the plurality of objectson the image display unit with the image data corresponding to theobjects.

(2) An acceleration data recognizing function of causing a control unitto recognize the acceleration data to be continuously inputted into aninput unit from the controller.

(3) A time interval data recognizing function of causing the controlunit to recognize a time interval of the acceleration data to becontinuously inputted into the input unit from the controller as thetime interval data.

(4) A velocity data calculating function of causing the control unit tocalculate the velocity magnitude data of the controller based on theacceleration data and the time interval data, both of which arerecognized by the control unit.

(5) An object moving velocity data calculating function of causing thecontrol unit to calculate the velocity magnitude data of the objectbased on the velocity magnitude data of the controller.

(6) An object moving state displaying function of continuouslydisplaying a state of at least one of the plurality of objects displayedon the image display unit moving at the velocity set by the velocitymagnitude data of the object on the image display unit with the imagedata corresponding to the object(s).

(7) A range data recognizing function of causing the control unit torecognize the coordinate data within the display range of the pluralityof objects.

(8) An object correspondence judging function of causing the controlunit to judge whether or not the coordinate data within the displayrange of the object moving at the velocity set by the velocity magnitudedata of the object corresponds to the coordinate data within the displayrange of the another object.

(9) A vibration control data calculating function of causing the controlunit to calculate the vibration control data for controlling vibrationof the controller depending on the velocity set by the velocitymagnitude data of the object when it is judged by the control unit thatthe coordinate data within the display range of the object moving at thevelocity set by the velocity magnitude data of the object corresponds tothe coordinate data within the display range of the another object.

(10) A vibration control data issuing function of causing the controlunit to issue a command for outputting the vibration control data to thecontroller.

According to the game to be realized by the program, in the objectdisplaying function, the plurality of objects are displayed on the imagedisplay unit with the image data corresponding to the objects. In theacceleration data recognizing function, the acceleration data to becontinuously inputted into the input unit from the controller isrecognized by the control unit. In the time interval data recognizingfunction, the time interval of the acceleration data to be continuouslyinputted into the input unit from the controller is recognized as thetime interval data by the control unit. In the velocity data calculatingfunction, the velocity magnitude data of the controller is calculated bythe control unit based on the acceleration data and the time intervaldata, both of which are recognized by the control unit. In the objectmoving velocity data calculating function, the velocity magnitude dataof the object is calculated by the control unit based on the velocitymagnitude data of the controller. In the object moving state displayingfunction, the state of at least one of the plurality of objectsdisplayed on the image display unit moving at the velocity set by thevelocity magnitude data of the object is continuously displayed on theimage display unit with the image data corresponding to the object(s).In the range data recognizing function, the coordinate data within thedisplay range of the plurality of objects are recognized by the controlunit. In the object correspondence judging function, it is judged by thecontrol unit whether or not the coordinate data within the display rangeof the object moving at the velocity set by the velocity magnitude dataof the object corresponds to the coordinate data within the displayrange of the another object. In the vibration control data calculatingfunction, when it is judged by the control unit that the coordinate datawithin the display range of the object moving at the velocity set by thevelocity magnitude data of the object corresponds to the coordinate datawithin the display range of the another object, the vibration controldata for controlling vibration of the controller is calculated by thecontrol unit depending on the velocity set by the velocity magnitudedata of the object. In the vibration control data issuing function, thecommand for outputting the vibration control data to the controller isissued by the control unit.

When a baseball game to be realized by the game program is exemplified,a plurality of objects, such as a batter character (including a batcharacter) and a ball character, are displayed on the image display unitwith the image data corresponding to each of the characters. Also, theacceleration data to be continuously inputted into the input unit fromthe controller is recognized by the control unit. Then, a time intervalof the acceleration data to be continuously inputted into the input unitfrom the controller is recognized as the time interval data by thecontrol unit. Then, the velocity magnitude data of the controller iscalculated by the control unit based on the acceleration data and thetime interval data, both of which are recognized by the control unit.Next, the velocity magnitude data of the bat character is calculated bythe control unit based on the velocity magnitude data of the controller.Accordingly, a state of the bat character, which is displayed on theimage display unit, moving at the velocity set by the velocity magnitudedata of the bat is continuously displayed on the image display unit withthe image data corresponding to the bat character. Also, the coordinatedata within the display range of the bat character and that of the ballcharacter are recognized by the control unit. Accordingly, it is judgedby the control unit whether or not the coordinate data within thedisplay range of the object moving at the velocity set by the velocitymagnitude data of the bat corresponds to the coordinate data within thedisplay range of the ball character. Then, if it is judged by thecontrol unit that the coordinate data within the display range of thebat moving at the velocity set by the velocity magnitude data of the batcorresponds to the coordinate data within the display range of the ballcharacter (if the ball is hit with the bat), the vibration control datafor controlling vibration of the controller is calculated by the controlunit depending on the velocity set by the velocity magnitude data of thebat. Next, a command for outputting the vibration control data to thecontroller is issued by the control unit. Accordingly, the controller iscaused to vibrate by the vibration mechanism that received the vibrationcontrol data.

In the game program, it is possible to cause the bat character to movein conjunction with movement of the controller in which the accelerationsensor and the vibration mechanism are embedded. Then, when the ball iscapable of being hit with the bat, the vibration control data for thecontroller depending on the velocity of the bat character is calculated,and the vibration control data for the controller is outputted from thecontrol unit to the vibration mechanism of the controller. Because ofthis, it becomes possible to cause the controller to vibrate dependingon the velocity of the bat character. In other words, it is possible tocause the controller to vibrate by the vibration mechanism depending onthe velocity of the object (bat) when the moved object (bat) makescontact with another object (ball).

A video game program in accordance with a second aspect of the presentinvention is the game program of the first aspect, and the followingfunction is further realized.

(11) Another object moving state displaying function of continuouslydisplaying a state of the another object moving at the velocity set bythe velocity magnitude data of the another object on the image displayunit with the image data corresponding to the another object.

According to the game to be realized by the program, in the anotherobject moving state displaying function, the state of the another objectmoving at the velocity set by the velocity magnitude data of the anotherobject is continuously displayed on the image display unit with theimage data corresponding to the another object. Accordingly, in thevibration control data calculating function, when it is judged by thecontrol unit that the coordinate data within the display range of theobject moving at the velocity set by the velocity magnitude data of theobject corresponds to the coordinate data within the display range ofthe another object, the vibration control data for controlling vibrationof the controller is calculated by the control unit depending on thevelocity set by the velocity magnitude data of the object and thevelocity set by the velocity magnitude data of the another object.

When a baseball game to be realized by the game program is exemplified,a state of a ball character moving at the velocity set by the velocitymagnitude data of the ball character is continuously displayed on theimage display unit with the image data corresponding to the ballcharacter. Accordingly, when it is judged by the control unit that thecoordinate data within the display range of the bat character moving atthe velocity set by the velocity magnitude data corresponds to thecoordinate data within the display range of the ball character moving atthe velocity set by the velocity magnitude data (when the ball is hitwith the bat), the vibration control data for controlling vibration ofthe controller is calculated by the control unit depending on thevelocity set by the velocity magnitude data of the bat character and thevelocity set by the velocity magnitude data of the ball character. Then,a command for outputting the vibration control data to the controller isissued by the control unit, and the controller is caused to vibrate bythe vibration mechanism that received the vibration control data.

In the game program, it is possible to cause the bat character to movein conjunction with movement of the controller in which the accelerationsensor and the vibration mechanism are embedded. Then, when the ballcharacter is capable of being hit with the bat character, the vibrationcontrol data for the controller depending on the velocity of the batcharacter and the velocity of the ball character is calculated, and thevibration control data for the controller is outputted from the controlunit to the vibration mechanism of the controller. Accordingly, itbecomes possible to cause the controller to vibrate depending on thevelocity of the bat character and the velocity of the ball character. Inother words, when the moving object (bat) makes contact with the anotherobject (ball), it is possible to cause the controller to vibrate by thevibration mechanism depending on the velocity of the object (bat) andthe velocity of the another object (ball).

A video game program in accordance with a third aspect of the presentinvention is the game program of one of the first aspect, and thefollowing function is further realized.

(12) An object hardness recognizing function of causing the control unitto recognize at least either hardness corresponding to the object movingat the velocity set by the velocity magnitude data of the object orhardness corresponding to the another object.

According to the game to be realized by the program, in the objecthardness recognizing function, at least either hardness corresponding tothe object moving at the velocity set by the velocity magnitude data ofthe object or hardness corresponding to the another object is recognizedby the control unit. Accordingly, in the vibration control datacalculating function, when it is judged by the control unit that thecoordinate data within the display range of the object moving at thevelocity set by the velocity magnitude data of the object corresponds tothe coordinate data within the display range of the another object, thevibration control data for controlling vibration of the controller iscalculated by the control unit depending on the velocity set by thevelocity magnitude data of the object and at least either hardnesscorresponding to the object moving at the velocity set by the velocitymagnitude data of the object or hardness corresponding to the anotherobject.

When a case is exemplified that a fighter having a sword strikes anopponent fighter with the sword in a beat'em up game to be realized bythe game program, with a configuration that the control unit is causedto recognize hardness of a sword character moving at the velocity set bythe velocity magnitude data of the sword and hardness of an opponentfighter character such as hardness of the armor of the opponent fightercharacter, if it is judged by the control unit that the coordinate datawithin the display range of the sword character moving at the velocityset by the velocity magnitude data corresponds to the coordinate datawithin the display range of the opponent fighter character, thevibration control data for controlling vibration of the controller iscalculated by the control unit depending on the velocity set by thevelocity magnitude data of the sword character, the hardness of thesword character, and the hardness of the armor of the opponent fightercharacter. Then, a command for outputting the vibration control data tothe controller is issued by the control unit, and the controller iscaused to vibrate by the vibration mechanism that received the vibrationcontrol data.

In the game program, it is possible to cause the sword character to movein conjunction with movement of the controller in which the accelerationsensor and the vibration mechanism are embedded. Then, when the swordcharacter is capable of strike the opponent fighter character, thevibration control data for the controller depending on the velocity ofthe sword character, the hardness of the sword character, and thehardness of the armor of the opponent fighter is calculated, and thevibration control data for the controller is outputted from the controlunit to the vibration mechanism of the controller. Because of this, itis possible to cause the controller to vibrate. In other words, when themoving object (sword) makes contact with the another object (opponentfighter), it is possible to cause the controller to vibrate by thevibration mechanism depending on the velocity of the object (sword), thehardness of the object (sword), and the hardness of the another object(opponent fighter).

A vide game program in accordance with a fourth aspect of the presentinvention is the game program of the first aspect, and the followingfunctions are further realized.

(13) An another object moving state displaying function of continuouslydisplaying a state of the another object moving at the velocity set bythe velocity magnitude data of the another object on the image displayunit with the image data corresponding to the another object.

(14) An object hardness recognizing function of causing the control unitto recognize at least either hardness corresponding to the object movingat the velocity set by the velocity magnitude data of the object orhardness corresponding to the another object.

According to the game to be realized by the program, in the anotherobject moving state displaying function, the state of the another objectmoving at the velocity set by the velocity magnitude data of the anotherobject is continuously displayed on the image display unit with theimage data corresponding to the another object. Then, in the objecthardness recognizing function, at least either hardness corresponding tothe object moving at the velocity set by the velocity magnitude data ofthe object or hardness corresponding to the another object is recognizedby the control unit. Accordingly, when it is judged by the control unitthat the coordinate data within the display range of the object movingat the velocity set by the velocity magnitude data of the objectcorresponds to the coordinate data within the display range of theanother object, the vibration control data for controlling vibration ofthe controller is calculated by the control unit depending on thevelocity set by the velocity magnitude data of the object, the velocityset by the velocity magnitude data of the another object, and at leasteither hardness corresponding to the object moving at the velocity setby the velocity magnitude data of the object or hardness correspondingto the another object.

When a case is exemplified that a first fighter having a sword and asecond fighter having a sword strike with each other with their swordsin a beat'em up game to be realized by the game program, with aconfiguration that the control unit is caused to recognize hardness of asword character of the first fighter moving at the velocity set by thevelocity magnitude data and hardness of a sword character of the secondfighter moving at the velocity set by the velocity magnitude data, if itis judged by the control unit that the coordinate data within thedisplay range of the sword character of the first fighter moving at thevelocity set by the velocity magnitude data corresponds to thecoordinate data within the display range of the sword character of thesecond fighter, the vibration control data for controlling vibration ofthe controller is calculated by the control unit depending on thevelocity set by the velocity magnitude data of the sword of the firstfighter, the velocity set by the velocity magnitude data of the sword ofthe second fighter, the hardness of the sword of the first fightermoving at the velocity set by the velocity magnitude data, and thehardness of the sword of the second fighter moving at the velocity setby the velocity magnitude data. Then, a command for outputting thevibration control data to the controller is issued by the control unit,and the controller is caused to vibrate by the vibration mechanism thatreceived the vibration control data.

In the game program, it is possible to cause the sword character of thefirst fighter to move in conjunction with movement of the controller inwhich the acceleration sensor and the vibration mechanism are embedded.Here, the sword character of the first fighter is controlled and iscaused to move by the AI. Then, when the sword character of the firstfighter and the sword character of the second fighter make contact witheach other under the condition that the first fighter and the secondfighter strike with their swords, the vibration control data for thecontroller depending on the velocity of the sword of the first fighter,the velocity of the sword of the second fighter, the hardness of thesword of the first fighter, and the hardness of the sword of the secondfighter is calculated, and the vibration control data for the controlleris outputted from the control unit to the vibration mechanism of thecontroller. Because of this, it is possible to cause the controller tovibrate. In other words, when the moving object (the sword of the firstfighter) makes contact with the another object (the sword of the secondfighter), the controller is caused to vibrate by the vibration mechanismdepending on the velocity of the object (the sword of the firstfighter), the velocity of the another object (the sword of the secondfighter), the hardness of the object (the sword of the first fighter),and the hardness of the another object (the sword of the secondfighter).

A video game device in accordance with a fifth aspect of the presentinvention is a game device that is configured to be capable of executinga video game in which a plurality of objects are displayed on an imagedisplay unit and an object is caused to move based on the accelerationdata detected by an acceleration sensor when a controller in which theacceleration sensor and a vibration mechanism are embedded is moved andthe controller is caused to vibrate by the vibration mechanism when themoved object makes contact with another object. The video game deviceincludes object displaying means for displaying the plurality of objectson the image display unit with the image data corresponding to theobjects, acceleration data recognizing means for causing a control unitto recognize the acceleration data to be continuously inputted into aninput unit from the controller, time interval data recognizing means forcausing the control unit to recognize a time interval of theacceleration data to be continuously inputted into the input unit fromthe controller as the time interval data, velocity data calculatingmeans for causing the control unit to calculate the velocity magnitudedata of the controller based on the acceleration data and the timeinterval data, both of which are recognized by the control unit, objectmoving velocity data calculating means for causing the control unit tocalculate the velocity magnitude data of the object based on thevelocity magnitude data of the controller, object moving statedisplaying means for continuously displaying a state of at least one ofthe plurality of objects displayed on the image display unit moving atthe velocity set by the velocity magnitude data of the object on theimage display unit with the image data corresponding to the object(s),range data recognizing means for causing the control unit to recognizethe coordinate data within the display range of the plurality ofobjects, object correspondence judging means for causing the controlunit to judge whether or not the coordinate data within the displayrange of the object moving at the velocity set by the velocity magnitudedata of the object corresponds to the coordinate data within the displayrange of the another object, vibration control data calculating meansfor causing the control unit to calculate the vibration control data forcontrolling vibration of the controller depending on the velocity set bythe velocity magnitude data of the object when it is judged by thecontrol unit that the coordinate data within the display range of theobject moving at the velocity set by the velocity magnitude data of theobject corresponds to the coordinate data within the display range ofthe another object, and vibration control data issuing means for causingthe control unit to issue a command for outputting the vibration controldata to the controller.

A video game control method in accordance with a sixth aspect of thepresent invention is a game control method that is configured to becapable of controlling a video game in which a plurality of objects aredisplayed on an image display unit and an object is caused to move basedon the acceleration data detected by an acceleration sensor when acontroller in which the acceleration sensor and a vibration mechanismare embedded is moved and the controller is caused to vibrate by thevibration mechanism when the moved object makes contact with anotherobject. The video game control method includes recognizing accelerationof an input unit, recognizing time duration of the acceleration,calculating speed of the input unit on the basis of the acceleration andthe time duration, calculating first speed of an object having a firstrange, on the basis of the speed of the input device, displaying theobject at the first speed of the first object and a second object havinga second range, on the image display unit, judging whether or not thefirst range at least partially overlaps with the second range, andvibrating the input unit on the basis of the speed of the first object,if the first range at least partially overlaps the second range.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the attached drawings which form a part of thisoriginal disclosure.

FIG. 1 is a basic configuration diagram of a video game device inaccordance with an embodiment of the present invention.

FIG. 2 is a functional block diagram as an example of the video gamedevice.

FIG. 3 is a diagram for illustrating characters displayed on atelevision monitor.

FIG. 4 is a diagram for illustrating correspondence between a movingstate of a controller and a moving state of a bat.

FIG. 5 is a diagram for illustrating relation among the accelerationdata, the velocity data, and the position data.

FIG. 6 is a chart for illustrating functional relation when the positiondata of a controller is converted into the position data for atelevision monitor.

FIG. 7 is a diagram for illustrating a method of calculating thedistance between a reference point of a ball and that of a bat.

FIG. 8 is a diagram for illustrating a method of synthesizing thevelocity of a ball and that of a bat.

FIG. 9 is a diagram for illustrating a method of calculating thevibration control data.

FIG. 10 is a flowchart for illustrating a batting vibration controlsystem.

FIG. 11 is a flowchart for illustrating the batting vibration controlsystem.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Selected embodiments of the present invention will now be explained withreference to the drawings. It will be apparent to those skilled in theart from this disclosure that the following descriptions of theembodiments of the present invention are provided for illustration onlyand not for the purpose of limiting the invention as defined by theappended claims and their equivalents

Configuration and Operation of Game Device

FIG. 1 shows the basic configuration of a game device in accordance withan embodiment of the present invention. As an example of a video gamedevice, a home video game device will be hereinafter explained. The homevideo game device includes a home video game console and a hometelevision set. A recording medium 10 is configured to be allowed to beloaded in the home video game console. Game data is arbitrarily read outof the recording medium 10 and a game is executed. The content of thegame executed herewith is displayed on the home television set.

The game system of the home video game device is made up of a controlunit 1, a memory unit 2, an image display unit 3, an audio output unit4, an operation input unit 5, and a controller 25, and these units areconnected to each other through a bus 6. This bus 6 includes an addressbus, a data bus, a control bus, and the like. Here, the control unit 1,the memory unit 2, the audio output unit 4, the operation input unit 5are included in the home video game console of the home video gamedevice, and the image display unit 3 is included in the home televisionset.

The control unit 1 is provided for mainly controlling progress of theentire game based on the game program. The control unit 1 is made up ofa CPU (Central Processing Unit) 7, a signal processor 8, and an imageprocessor 9, for instance. The CPU 7, the signal processor 8, and theimage processor 9 are connected to each other through the bus 6. The CPU7 interprets a command from a game program and performs a variety ofdata processing and data control. For example, the CPU 7 commands thesignal processor 8 to provide the image data to the image processor. Thesignal processor 8 mainly performs computations in the three-dimensionalspace, computations of positional conversion from the three-dimensionalspace to the virtual three-dimensional space, a light source computationprocessing, and data generation and data processing of the image dataand the audio data. The image processor 9 mainly performs a processingto write the image data to be rendered to a RAM 12 based on thecomputation results and processing results of the signal processor 8.

The memory unit 2 is provided mainly for storing the program data,various types of data used for the program data, and the like. Thememory unit 2 is made up of the recording medium 10, an interfacecircuit 11, and the RAM (Random Access Memory) 12, for instance. Theinterface circuit 11 is connected to the recording medium 10. Theinterface circuit 11 and the RAM 12 are connected through the bus 6. Therecording medium 10 serves to store the program data of the operatingsystem, the game data made up of the image data, the audio data, varioustypes of program data, and the like. For example, this recording medium10 is a ROM (Read Only Memory) cassette, an optical disk, a flexibledisk, or the like. The program data of the operating system, the gamedata, and the like are stored in this recording medium 10. Note that acard memory is also included in the category of the recording medium 10and is mainly used for storing various game parameters at the point ofinterruption when the game is interrupted. The RAM 12 is used fortemporarily storing various types of data read out of the recordingmedium 10, and for temporarily recording the processing results from thecontrol unit 1. In addition to various types of data, the address dataindicating the memory location of various types of data is stored in theRAM 12, and it is configured to be allowed to specify an arbitraryaddress and read/write data from/to the address.

The image display unit 3 is provided for mainly outputting the imagedata written to the RAM 12 by the image processor 9, the image data tobe read out of the recording medium 10, and the like, as an image. Theimage display unit 3 is made up of a television monitor 20, an interfacecircuit 21, and a D/A converter (Digital-to-Analog converter) 22, forinstance. The D/A converter 22 is connected to the television monitor20, and the interface circuit 21 is connected to the D/A converter 22.In addition, the bus 6 is connected to the interface circuit 21. Here,the image data is provided to the D/A converter 22 through the interfacecircuit 21, and is herein converted into an analog image signal. Then,the analog image signal is outputted to the television monitor 20 as animage.

Here, the image data includes the polygon data, the texture data, andthe like, for instance. The polygon data is the coordinate data ofapexes forming the polygon. The texture data is used for setting texturewith respect to the polygon, and is made up of the texture specifyingdata and the texture color data. The texture specifying data is the datafor associating the polygon and the texture, and the texture color datais the data for specifying the texture color. Here, the polygon addressdata and the texture address data, both of which indicate the memorylocation of each type of data, are associated with the polygon data andthe texture data, respectively. With the image data of this type, thecoordinate conversion and the perspective projection conversion areperformed with respect to the polygon data in the three-dimensionalspace (i.e., the three-dimensional polygon data) indicated with thepolygon address data by the signal processor 8, based on thedisplacement data and the rotational data of the screen itself (i.e.,point of sight). Accordingly, the polygon data is converted into thepolygon data in the two-dimensional space (i.e., the two-dimensionalpolygon data). Then, a polygon outline is constituted with a pluralityof two-dimensional polygon data, and the texture data specified by thetexture address data is written to the internal area of the polygon.Thus, it is possible to express objects made by applying texture to eachpolygon, that is, various characters.

The audio output unit 4 is provided mainly for outputting the audio datato be read out of the recording medium 10 as the audio. The audio outputunit 4 is made up of a speaker 13, an amplifier circuit 14, a D/Aconverter 15, and an interface circuit 16, for instance. The amplifiercircuit 14 is connected to the speaker 13. The D/A converter 15 isconnected to the amplifier circuit 14. The interface circuit 16 isconnected to the D/A converter 15. In addition, the bus 6 is connectedto the interface circuit 16. Here, the audio data is provided to the D/Aconverter 15 through the interface circuit 16 and is converted into ananalog audio signal. The analog audio signal is amplified by theamplifier circuit 14 and is outputted from the speaker 13 as the audio.ADPCM (Adaptive Differential Pulse Code Modulation) data, PCM (PulseCode Modulation) data, and the like are included in the category of theaudio data, for instance. In the case of the ADPCM data, it is possibleto output the audio from the speaker 13 with almost the same type ofprocessing method as described above. In the case of the PCM data, it ispossible to output the audio from the speaker 13 with almost the sametype of processing method as described above by preliminarily convertingthe PCM data into the ADPCM data in the RAM 12.

The operation input unit 5 is mainly made up of an operation informationinterface circuit 18 and an interface circuit 19. The controller 25 isconnected to the operation information interface circuit 18, and theinterface circuit 19 is connected to the operation information interfacecircuit 18. In addition, the bus 6 is connected to the interface circuit19.

The controller 25 is an operating device used by a game player for thepurpose of inputting a variety of operating commands, and transmits anoperating signal corresponding to a game player's operation to the CPU7. An acceleration sensor 24 and a vibration mechanism such as avibration motor 26 are embedded in the controller 25.

For example, a piezo resistance sensor, a capacitance sensor, a magneticsensor, and the like are included in the category of the accelerationsensor 24. When the controller 25 is moved, magnitude of acceleration ofthe controller 25 is measured and outputted by the acceleration sensor24 of this type depending on movement of the controller 25. Theacceleration sensor 24, which is herein used, is a triaxial accelerationsensor, and magnitude of accelerations in the triaxial directions aremeasured and outputted by the acceleration sensor 24 depending onmovement of the controller 25. In other words, when the controller 25 ismoved, magnitudes of accelerations in the triaxial directions from theacceleration sensor 24 are outputted as the acceleration data from thecontroller 25 to the operation input unit 5. It is possible to cause thecontrol unit 1 to recognize movement of the controller 25 in thethree-dimensional space by causing the control unit 1 to recognize andprocess the acceleration data.

The vibration motor 26 comes in cylindrical and button versions. In thevibration motor 26, when a motor signal obtained by converting thevibration control data from the control unit 1 by the operation inputunit 5 is inputted from the operation input unit 5, a motor rotatorrotates at the number of revolutions that corresponds to the motorsignal. Then, the vibration motor 26 vibrates depending on the number ofrevolutions of the motor rotator.

Also, the controller 25 is provided with, for instance, a cross-shapeddirection key made up of an up key 17U, a down key 17D, a left key 17L,and a right key 17R. For example, it is possible to move a character, anobject, and a cursor on the screen of the television monitor 20 up,down, left, and right by the manipulation of the up key 17U, the downkey 17D, the left key 17L, and the right key 17R. When the up key 17U,the down key 17D, the left key 17L, and the right key 17R arerespectively manipulated, an operating signal corresponding to each ofthe keys is outputted from the controller 25 to the operation input unit5, and a command corresponding to the operating signal is recognized bythe control unit 1.

Note that each button and each key provided in the controller 25 areconfigured to function as ON/OFF switches that become an on-state whenpressed from the neutral position by the external pressure and become anoff-state by returning to the neutral position when the pressure isreleased.

The general operations of the home video game device configured asdescribed above will be hereinafter explained. If a power switch (notillustrated in the figure) is turned on and accordingly the game system1 is powered on, the CPU 7 reads out the image data, the audio data, andthe program data from the recording medium 10 based on the operatingsystem stored in the recording medium 10. All or part of the read-outdata including the image data, the audio data, and the program data arestored in the RAM 12. Then, the CPU 7 issues commands to the image dataand the audio data, both of which are stored in the RAM 12, based on theprogram data stored in the RAM 12.

In the case of the image data, the signal processor 8 firstly performsthe positional computation, the light source computation, and the likefor a character in the three-dimensional space based on the command fromthe CPU 7. Next, the image processor 9 performs a processing of writingthe image data to be rendered to the RAM 12 based on the computationresults by the signal processor 8. Then, the image data written to theRAM 12 is provided to the D/A converter 15 through the interface circuit16. Here, the image data is converted into an analog image signal by theD/A converter 15. Then, the image data is provided to the televisionmonitor 20 and is displayed as an image.

In the case of the audio data, the signal processor 8 firstly performsprocessing to generate and process the audio data based on the commandfrom the CPU 7. Here, processing, such as the pitch conversion, thenoise addition, the envelope setting, the level setting, and the reverbaddition, is performed for the audio data. Next, the audio data isoutputted from the signal processor 8 and is provided to the D/Aconverter 15 through the interface circuit 16. Here, the audio data isconverted into an analog audio signal. Then, the audio data is outputtedas the audio from the speaker 13 through the amplifier circuit 14.

Summary of a Variety of Processing in Game Device

A game executed in the present game consol 1 is a baseball game, forinstance. The present game console 1 is configured to be capable ofexecuting a video game in which a plurality of objects are displayed onthe television monitor 20 of the image display unit 3, an object iscaused to move based on the acceleration data detected by theacceleration sensor 24 when the controller 25 in which the accelerationsensor 24 and the vibration motor 26 are embedded is moved, and thecontroller 25 is caused to vibrate by the vibration motor 26 when themoved object makes contact with another object. FIG. 2 is a functionalblock diagram for illustrating functions that play major roles in thepresent invention.

Object displaying means 50 has a function of displaying a plurality ofobjects on the television monitor 20 of the image display unit 3 withthe image data corresponding to the objects. In the object displayingmeans 50, a plurality of objects are displayed on the television monitor20 of the image display unit 3 with the image data corresponding to theobjects.

Acceleration data recognizing means 51 has a function of causing thecontrol unit 1 to recognize the acceleration data to be consecutivelyinputted into the input unit from the controller 25. In the accelerationdata recognizing means 51, the acceleration data to be consecutivelyinputted into the input unit from the controller 25 is recognized by thecontrol unit 1. Specifically, the acceleration data recognizing means 51causes the control unit 1 to judge whether or not a value of theacceleration data recognized by the control unit 1 is greater than orequal to a predetermined value. If it is judged by the control unit 1that the value of the acceleration data recognized by the control unit 1is greater than or equal to the predetermined value, the accelerationdata is recognized by the control unit 1. In this case, when it isjudged by the control unit that the acceleration data recognized by thecontrol unit is greater than or equal to a predetermined value, theacceleration data is configured to be recognized by the control unit.Therefore, even when a game player slightly moves the controller, it ispossible to prevent an object such as a bat from moving in conjunctionwith movement of the controller. In other words, it is possible toprevent an error manipulation that is caused when a game playerinvoluntarily moves the controller

Time interval data recognizing means 52 has a function of causing thecontrol unit 1 to recognize a time interval of the acceleration data tobe consecutively inputted into the input unit from the controller 25 asthe time interval data. In the time interval data recognizing means 52,a time interval of the acceleration data to be consecutively inputtedinto the input unit from the controller 25 is recognized by the controlunit 1 as the time interval data.

Velocity data calculating means 53 has a function of causing the controlunit 1 to calculate the velocity magnitude data of the controller 25based on the acceleration data and the time interval data, both of whichare recognized by the control unit 1. In the velocity data calculatingmeans 53, the velocity magnitude data of the controller 25 is calculatedby the control unit 1 based on the acceleration data and the timeinterval data, both of which are recognized by the control unit 1. Also,the velocity data calculating means 53 has a function of causing thecontrol unit 1 to calculate the position data of the controller 25 basedon the acceleration data and the time interval data, both of which arerecognized by the control unit 1. In the velocity data calculating means53, the position data of the controller 25 is calculated by the controlunit 1 based on the acceleration data and the time interval data, bothof which are recognized by the control unit 1. Specifically, thevelocity magnitude data of the controller 25 is calculated by thecontrol unit 1 when the velocity data calculating means 53 causes thecontrol unit 1 to perform the integral calculation for the accelerationdata to be consecutively inputted into the operation input unit 5 withthe time interval data. Then, the position data of the controller 25 iscalculated by the control unit 1 when the means causes the control unit1 to perform the integral calculation for the velocity magnitude datawith the time interval data.

Object moving velocity data calculating means 54 has a function ofcausing the control unit 1 to calculate the velocity magnitude data ofthe object based on the velocity magnitude data of the controller 25. Inthe object moving velocity data calculating means 54, the velocitymagnitude data of the object is calculated by the control unit 1 basedon the velocity magnitude data of the controller 25. Specifically, inthe object moving velocity data calculating means 54, the velocitymagnitude data of the object corresponding to the velocity magnitudedata of the controller 25 is calculated by the control unit 1. Morespecifically, in the object moving velocity data calculating means 54,the velocity magnitude data of the object is calculated by the controlunit 1 when the calculation of multiplying the velocity magnitude dataof the controller 25 by the modification coefficient for the imagedisplay is performed by the control unit 1. Note that in the presentembodiment, a case in which the velocity magnitude data of the object iscalculated by multiplying the velocity magnitude data of the controller25 by the modification coefficient for the image display is exemplified.However, under the condition that a correspondence table between thevelocity magnitude of the controller 25 and the velocity magnitude ofthe object on the television monitor 20 of the image display unit 3(velocity obtained by multiplying the velocity magnitude by themodification coefficient) is preliminarily set in the game program, themoving velocity data of the object corresponding to the velocitymagnitude data may be configured to be selected by the control unit 1based on the correspondence table to be provided from the recordingmedium 10 to the memory unit 2 when the game program is loaded.

Another object velocity data recognizing means 55 has a function ofcausing the control unit 1 to recognize the velocity magnitude data ofanother object. In the another object velocity data recognizing means55, the velocity magnitude data of another object is recognized by thecontrol unit 1. Here, the velocity magnitude data of another object iscalculated by the control unit 1 in a method that is almost the same asthe conventional method when an operation regarding the velocity ofanother object is performed in the controller 25.

Another object position data recognizing means 56 has a function ofcausing the control unit 1 to recognize the position data of anotherobject. In the another object position data recognizing means 56, theposition data of another object is recognized by the control unit 1.

Object moving state displaying means 57 has a function of consecutivelydisplaying a state of at least one of a plurality of objects, whichis/are displayed on the television monitor 20 of the image display unit3, moving at the velocity set by the velocity magnitude data of theobject on the television monitor 20 of the image display unit 3 with theimage data corresponding to the object(s). In the object moving statedisplaying means 57, a state of at least one of a plurality of objects,which is/are displayed on the television monitor 20 of the image displayunit 3, moving at the velocity set by the velocity magnitude data of theobject is consecutively displayed on the television monitor 20 of theimage display unit 3 with the image data corresponding to the object(s).

Another object moving state displaying means 58 has a function ofconsecutively displaying a state of another object moving at thevelocity set by the velocity magnitude data of another object on thetelevision monitor 20 of the image display unit 3 with the image datacorresponding to another object. In the another object moving statedisplaying means 58, a state of another object moving at the velocityset by the velocity magnitude data of another object is consecutivelydisplayed on the television monitor 20 of the image display unit 3 withthe image data corresponding to another object.

Range data recognizing means 59 has a function of causing the controlunit 1 to recognize the coordinate data within the display range of aplurality of objects. In the range data recognizing means 59, thecoordinate data within the display range of a plurality of objects arerecognized by the control unit 1.

Object correspondence judging means 60 has a function of causing thecontrol unit 1 to judge whether or not the coordinate data within thedisplay range of the object moving at the velocity set by the velocitymagnitude data of the object corresponds to the coordinate data withinthe display range of another object. In the object correspondencejudging means 60, it is judged by the control unit 1 whether or not thecoordinate data within the display range of the object moving at thevelocity set by the velocity magnitude data of the object corresponds tothe coordinate data within the display range of another object.

Vibration control data calculating means 61 has a function of causingthe control unit 1 to calculate the vibration control data forcontrolling vibration of the controller 25 depending on the velocity setby the velocity magnitude data of the object when it is judged by thecontrol unit 1 that the coordinate data within the display range of theobject moving at the velocity set by the velocity magnitude data of theobject corresponds to the coordinate data within the display range ofanother object.

In the vibration control data calculating means 61, when it is judged bythe control unit 1 that the coordinate data within the display range ofthe object moving at the velocity set by the velocity magnitude data ofthe object corresponds to the coordinate data within the display rangeof another object, the vibration control data for controlling vibrationof the controller 25 is calculated by the control unit 1 depending onthe velocity set by the velocity magnitude data of the object.Specifically, in the vibration control data calculating function, whenit is judged by the control unit 1 that the coordinate data within thedisplay range of the object moving at the velocity set by the velocitymagnitude data of the object corresponds to the coordinate data withinthe display range of another object, the vibration control data forcontrolling vibration of the controller 25 is calculated by the controlunit 1 depending on the velocity set by the velocity set by the velocitymagnitude data of the object and the velocity set by the velocitymagnitude data of another object.

Vibration control data issuing means 62 has a function of causing thecontrol unit 1 to issue a command for outputting the vibration controldata to the controller 25. In the vibration control data issuing means62, a command for outputting the vibration control data to thecontroller 25 is issued by the control unit 1.

Summary of Batting Vibration Control System in Baseball Game and Flow ofa Variety of Processing

A batting vibration control system in the baseball game will behereinafter explained. In addition, flow of the batting vibrationcontrol system illustrated in FIGS. 10 and 11 will be simultaneouslyexplained.

As illustrated in FIG. 3, when a game player operates a batter characterin the present baseball game, a pitcher character 71, a batter character72 holding a bat, a contact hitting cursor area 80 in the referencestate are displayed on the television monitor 20 (S1). Here, the initialrange data for setting the contact hitting cursor area 80 in thereference state is preliminarily set in the game program, and theinitial range data of the contact hitting cursor area 80 is read out ofthe memory unit 2 and is recognized by the control unit 1.

Here, when a signal, which is issued by the controller 25 when apitching starting corresponding button (not illustrated in the figure)of the controller 25 is pressed, is received by the control unit 1, acommand for causing the pitcher character 71 to start pitching is issuedby the control unit 1 based on the game program. Accordingly, a state ofthe pitcher character 71 performing a pitching motion is displayed onthe television monitor 20 by causing the image data (e.g., polygon data)corresponding to the pitcher character 72 to consecutively move (S2).Then, when the predetermined pitching motion of the pitcher character 71is completed, a command for causing the pitcher character 71 to releasea ball is recognized by the control unit 1 (S3).

Accordingly, the control unit 1 starts recognition of velocity magnitudedata VB and the position data of the ball released by the pitchercharacter 71 (S4). Here, the position data of the ball character 74 ismade up of the reference coordinate data indicating the center point(reference point) Bm1 of the ball and the coordinate data within thedisplay range of the ball. Then, a state that the ball character 74released by the pitcher character 71 moves from the pitcher character 71to the batter character 72 is displayed on the television monitor 20based on the reference coordinate data indicating the reference pointBm1 of the ball (S5). The state is realized by causing the image datacorresponding to the ball character 74 to move from the pitchercharacter 71 to the batter character 72, and movement of the ballcharacter 74 is herein controlled by the control unit 1 while thereference point Bm1 is set as the reference.

As illustrated in FIG. 4, if a game player moves the controller 25(e.g., if a game player swings his/her arm together with the controller25 while holding the controller 25: S6) while a state that the ballcharacter 74 released by the pitcher character 71 moves from the pitchercharacter 71 to the batter character 72 is displayed on the televisionmonitor 20, acceleration data G detected by the acceleration sensor 24embedded in the controller 25 is consecutively outputted from thecontroller 25 to the operation input unit 5 and is inputted into theoperation input unit 5 (S7).

Accordingly, it is judged by the controller unit 1 whether or not theabsolute value of the acceleration data G inputted into the operationinput unit 5 is greater than or equal to a predetermined value (S8). Ifit is judged by the control unit 1 that the absolute value of theacceleration data G is greater than or equal to the predetermined value(Yes in S8), the acceleration data G is recognized by the control unit 1(S9). Accordingly, a display starting command for a state of the batmoving with the batter character 72, that is, a state of the battercharacter 72 swinging the bat, is issued from control unit 1 to theimage display unit 3. Here, if it is judged by the control unit 1 thatthe absolute value of the acceleration data G inputted into theoperation input unit 5 is less than the predetermined value (No in S8),the acceleration data G is not recognized by the control unit 1 (S1). Inother words, the bat does not move with the batter character 72 (thebatter character 72 does not swing the bat).

When the acceleration data G is sequentially recognized by the controlunit 1, a time interval of the acceleration data G consecutivelyinputted into the operation input unit 5 is recognized by the controlunit 1 as the time interval data dt (S11). Accordingly, as illustratedin FIG. 5, the integral calculation is performed by the control unit 1for the acceleration data G recognized by the control unit 1 with thetime interval data dt, and the velocity magnitude data V of thecontroller 25 is calculated by the control unit 1 (S12). Also, theintegral calculation for the velocity magnitude data V of the controller25 is performed by the control unit 1 with the time interval data dt,and position data X of the controller 25 is calculated by the controlunit 1 (S13).

Accordingly, the calculation of multiplying the velocity magnitude dataV of the controller 25 by the modification coefficient a for the imagedisplay is performed by the control unit 1, and velocity magnitude dataVBT (α·V) of the bat is calculated by the control unit (S14). Then, thecalculation of converting the position data X of the controller 25 intothe position data X′ of the television monitor 20 of the image displayunit 3 is performed by the control unit 1 (See FIG. 6: S15).Accordingly, a state of the bat moving at the velocity set by thevelocity magnitude data VBT of the bat in the position set by theposition data X′, that is, a moving state of the bat moving with thebatter character 72 (bat swing state), is consecutively displayed on thetelevision monitor 20 by causing the image data (e.g., polygon data)corresponding to the bat to move on the television monitor 20 of theimage display unit 3 (S16). Here, the position data of the bat character73 is recognized by the control unit 1 (S17). Here, the position data ofthe bat character 73 is made up of the coordinate data indicating thereference point Bm2 of the bat and the coordinate data within thedisplay range of the bat. The position data of the contact hittingcursor area in the display area of the bat character herein correspondsto the position data of the bat character.

The state that the bat character is displayed on the television monitor20 is realized by causing the image data (e.g., polygon data) of thebatter character 72 and the bat character 73 to consecutively move onthe television monitor 20 at a rendering time interval set by therendering time interval data so that the bat character 73 moves at thevelocity set by the velocity magnitude data VBT of the bat. Therendering time interval data is regulated by the control unit 1depending on the velocity magnitude data. For example, the referencemoving velocity magnitude and the reference rendering time interval(e.g., 0.02 seconds) of the bat on the game screen are preliminarily setin the game program. Under the condition that this reference state isset as the reference, if the moving velocity of the bat is faster thanthe reference moving velocity, that is, if the moving velocity magnitudeof the bat is greater than the reference moving velocity magnitude, thepolygon data is displayed on the television monitor 20 at the timeinterval less than the interval of 0.02 seconds. On the other hand, ifthe moving velocity of the bat is slower than the reference movingvelocity, that is, if the moving velocity magnitude of the bat is lessthan the reference moving velocity magnitude, the polygon data isdisplayed on the television monitor 20 at the time interval greater thanthe time interval of 0.02 seconds. Here, the rendering time interval iscalculated by multiplying the reference time interval by rate (ratio) ofthe calculated velocity magnitude of the bat with respect to thereference moving velocity.

After the bat character is displayed on the television monitor 20 asdescribed above, it is judged by the control unit 1 whether or not thecoordinate data within the display range of the bat moving at thevelocity set by the velocity magnitude data of the bat corresponds tothe coordinate data within the display range of the ball (S18).Specifically, it is judged by the control unit 1 whether or not the ballis hit with the bat. Then, as illustrated in FIG. 7, if it is judged bythe control unit 1 that the coordinate data within the display range ofthe bat (within the area of the contact hitting cursor 80) moving at thevelocity set by the velocity magnitude data of the bat corresponds tothe coordinate data within the display range of the ball character 74(Yes in S18), distance 1 m between the reference point Bm1 of the ballcharacter 74 and the reference point Bm2 of the bat character iscalculated by the control unit 1 (S19). Accordingly, vibration controldata S for controlling vibration of the controller 25 is calculated bythe control unit 1 depending on the distance 1 m between referencepoints, the velocity VB set by the velocity magnitude data of the ball,and the velocity set by the velocity magnitude data of the bat (S20).Accordingly, a command of outputting the vibration control data S to thecontroller 25 is issued by the control unit 1 (S21). On the other hand,if it is judged by the control unit 1 that the coordinate data withinthe display range of the bat moving at the velocity set by the velocitymagnitude data of the bat does not correspond to the coordinate datawithin the display range of the ball (No in S18), the calculation of thedistance 1 m between the reference points is not performed by thecontrol unit 1.

Contents of Processing in Each Means of Batting Vibration Control Systemin Baseball Game and Supplementary Explanation Thereof Velocity DataCalculating Means

When the acceleration data G made up of magnitudes of the accelerationsin the triaxial directions is recognized by the control unit 1 and thena time interval of the acceleration data G (gx, gy, gz, t) consecutivelyinputted into the operation input unit 5 from the controller 25 isrecognized by the control unit 1 as the time interval data dt, asillustrated in FIG. 5, the integral calculation is performed by thecontrol unit 1 for the acceleration data G consecutively inputted intothe operation input unit 5 from the controller 25 with the time intervaldata dt, and the velocity magnitude data V (vx, vy, vz, t) of thecontroller 25 in the triaxial directions is calculated by the controlunit 1. For example, when acceleration data G1 (gx1, gy1, gz1, t1) isfirstly recognized by the control unit 1 at time t1 and subsequentlyacceleration data G2 (gx2, gy2, gz2, t2) is recognized by the controlunit 1 at time t2, velocity magnitude data V1 (vx1, vy1, vz1, t1) of thecontroller 25 is calculated by the control unit 1 by causing the controlunit 1 to perform the calculation of “∫[G2 (gx2, gy2, gz2, t2)−G1 (gx1,gy1, gz1, t1)]·dt” between the time t2 and the time t1. In a similar wayto the above, when acceleration data G3 (gx3, gy3, gz3, t3) isrecognized by the control unit 1 at time t3 succeeding the time t2,velocity magnitude data V2 (vx2, vy2, vz2, t2) of the controller 25 iscalculated by the control unit 1 by causing the control unit 1 toperform the calculation of “∫[G3 (gx3, gy3, gz3, t3)−G2 (gx2, gy2, gz2,t2)]·dt” between the time t3 and the time t2. Also, when accelerationdata G4 (gx4, gy4, gz4, t4) is recognized by the control unit 1 at timet4 succeeding the time t3, velocity magnitude data V3 (vx3, vy3, vz3,t3) of the controller 25 is calculated by the control unit 1 by causingthe control unit 1 to perform the calculation of “∫[G4 (gx4, gy4, gz4,t4)−G3 (gx3, gy3, gz3, t3)]·dt” between the time t4 and the time t3.

When the integral calculation is further performed by the control unit 1for thus calculated velocity magnitude data V of the controller 25 withthe time interval data dt, the position data X of the controller 25 iscalculated by the control unit 1. For example, position data X1 (x1, y1,z1, t1) of the controller 25 is calculated by the control unit 1 bycausing the control unit 1 to perform the calculation of “∫[V2 (vx2,vy2, vz2, t2)−V1 (vx1, vy1, vz1, t1)]·dt” between the time t2 and thetime t1. In a similar way to this, position data X2 (x2, y2, z2, t2) ofthe controller 25 is calculated by the control unit 1 by causing thecontrol unit 1 to perform the calculation of “∫[V3 (vx3, vy3, vz3,t3)−V2 (vx2, vy2, vz2, t2)]·dt” between the time t3 and the time t2.

It is possible to calculate the velocity magnitude data and the positiondata of the controller 25 in each time based on the acceleration data Gof the controller 25 by causing the control unit 1 to perform the aboveseries of calculations when the acceleration data G of the controller 25is recognized by the control unit 1.

Note that time when the velocity magnitude data V and the position dataX of the controller 25 are calculated, time ts at which the accelerationdata G of the controller 25 is recognized by the control unit for thefirst time is set to be the calculation starting time. Also, time te atwhich it is judged by the control unit 1 that the coordinate set by thewithin-area coordinate data of the modified range data of the contacthitting cursor area 80 corresponds to at least one of the within-displayrange coordinate data of the ball that is set by the within-rangecoordinate data of the ball, that is, time te at which the ball is hitwith the bat, is set to be the calculation ending time.

Object Moving Velocity Data Calculating Means

The velocity magnitude data VBT of the bat is calculated by causing thecontrol unit 1 to perform the calculation of multiplying the velocitymagnitude data V of the controller 25 by the modification coefficient αfor the image display. This is the processing performed for modifyingthe velocity magnitude data calculated based on the acceleration data Gof the actually moved controller 25 into the moving velocity of the batused in the game. For example, the velocity magnitude data VBT of thebat is calculated by the control unit 1 by causing the control unit 1 toperform the calculation of multiplying the above calculated velocitymagnitude data V1 and V2 of the controller 25 by the modificationcoefficient α (constant) or the modification coefficient depending onthe velocity magnitude data V1 and V2 of the controller 25, that is, themodification coefficient α (V) in which the velocity magnitude data V ofthe controller 25 is set to be a variable.

Object Moving State Displaying Means

As illustrated in FIG. 6, the above calculated position data X1 and X2of the controller 25 are converted into position data X′1 and X′2 forthe television monitor 20. The position data X1 and X2 of the controller25 are coordinates in the three-dimensional real space (space in which agame player swings his/her arm together with the controller 25).Therefore, the calculation of converting the position data X1 and X2 ofthe controller 25 into the position data X′1 and X′2 for the televisionmonitor 20 in the three-dimensional game space is herein performed bythe control unit 1. The conversion is performed by causing the controlunit 1 to perform the mapping from the three-dimensional real space tothe three-dimensional game space. For example, the conversion isperformed by causing the control unit 1 to perform the calculation of“X′ (x′, y′, z′)=f·X (x, y, z)” with the map function f preliminarilydetermined in the game program. A state of the bat character 73 movingat the velocity VBT set by the velocity magnitude data of the bat in theposition set by the position data X′1 and X′2 of the bat in thethree-dimensional game space is displayed on the television monitor 20.

Object Correspondence Judging Means and Vibration Control DataCalculating Means

First, it is judged by the control unit 1 whether or not the coordinatewithin the display range of the bat moving at the velocity VBT set bythe velocity magnitude data of the bat corresponds to at least one ofthe coordinates within the display range of the ball moving at thevelocity VB set by the velocity magnitude data of the ball.Specifically, it is judged by the control unit 1 whether or not anoverlapped portion between a predetermined area of the bat character 73and the display area of the ball character 74 is generated, that is,whether or not the ball is hit with the bat. Then, if it is judged bythe control unit 1 that the coordinate within the display range of thebat corresponds to at least one of the coordinates within the displayrange of the ball, as illustrated in FIG. 7, the distance 1 m betweenthe reference point Bm1 of the ball character 74 and the reference pointBm2 of the bat character 73 is calculated by the control unit 1.Accordingly, the control unit 1 is caused to perform the calculation ofsynthesizing the velocity VBT set by the velocity magnitude data of thebat and the velocity VB set by the velocity magnitude data of the ball,and as illustrated in FIG. 8, the synthesis velocity data for settingsynthesis velocity VG is calculated by the control unit 1.

Here, the calculation of reversing the direction of the vector data ofthe ball is performed by the control unit 1. Then, the control unit 1 iscaused to perform the calculation of moving the reference point of thevector data of the bat from the reference point Bm2 of the bat to thereference point Bm1 of the ball. Then, the calculation of synthesizingthe vector data of the bat and the vector data of the ball in thereference point Bm1 of the ball is performed by the control unit 1. Inthis way, the synthesis vector for setting the velocity and thedirection of the ball hit back with the bat is calculated by the controlunit 1. Note that each vector is calculated by the control unit 1 basedon the velocity magnitude of the ball character 74 and that of the batcharacter 73 when the ball is hit with the bat, and the coordinates oftwo points in the moving direction.

Accordingly, as illustrated in FIG. 9, a first parameter γ1corresponding to the distance lm between the reference points isselected by the control unit 1 based on a first correspondence table.Then, a second parameter γ2 is selected by the control unit 1 based on asecond correspondence table depending on the combination of thesynthesis velocity VG and the first parameter γ1. Then, vibrationcontrol data S is selected by the control unit 1 based on acorrespondence table (here, the second correspondence table) between thesecond parameter γ2 and the vibration control data S. Here, thevibration control data S includes values ranging from 1 to 7. Thevibration control data S is configured to be an indicator for indicatingan extent to which the vibration motor 26 is caused to vibrate. As thevalue of the vibration control data S becomes greater, the number ofrevolutions of the vibration motor 26 becomes greater. When thevibration control data S is provided from the control unit 1 to theoperation input unit 5, it is converted into a motor signalcorresponding to the vibration control data S by the operation inputunit 5, and thus the vibration motor 26 revolves at the number ofrevolutions corresponding to the motor signal. In other words, thecontroller 25 vibrates.

Specifically, when the distance 1 m between the reference points iszero, the bat is configured to make solid contact with the ball. Becauseof this, regardless of the magnitude of the synthesis velocity VG, thecontroller 25 comes to less vibrate. Also, as the distance lm betweenthe reference points becomes greater than zero, the bat is configurednot to have made solid contact with the ball, and the controller 25comes to more vibrate depending on the magnitude of the synthesisvelocity VG.

Other Embodiments

(a) In the above described embodiment, a case is exemplified that thehome video game device is used as an example of a computer to which thegame program is allowed to be applied. However, the game device is notlimited to the above described embodiment. The present invention may beapplied to a game device for which a monitor is separately provided, amonitor-integrated game device, a personal computer or a workstationthat functions as a game device when a game program is executed therein,and the like, as well.

(b) A program for executing the above described game and acomputer-readable recording medium in which the program is recorded arealso included in the present invention. For example, a computer-readableflexible disk, a semiconductor memory, a CD-ROM, a DVD, a MO, a ROMcassette, and the like may be suggested as the recording medium otherthan the cartridge.

(c) In the above described embodiment, a case is exemplified that anextent of vibration of the controller 25 changes depending on thedistance 1 m between the reference points and the synthesis velocitymagnitude. However, the extent of vibration of the controller 25 may beconfigured to change only depending on the velocity magnitude of the batand the synthesis velocity magnitude without using the distance lmbetween the reference points.

(d) In the above described embodiment, a case is exemplified that anextent of vibration of the controller 25 changes depending on thesynthesis velocity magnitude. However, when it is judged by the controlunit 1 that the coordinate data within the display range of the movingobject corresponds to the coordinate data within the display range ofanother object, the game program, which further includes an objecthardness recognizing function for causing the control unit 1 torecognize at least either hardness corresponding to an object orhardness corresponding to another object, may be configured to cause thecontrol unit 1 to calculate the vibration control data for controllingvibration of the controller 25 depending on the velocity of the objectand at least either hardness corresponding to an object or hardnesscorresponding to another object.

In this case, for example, in a beat'em up game, a sword character iscaused to move in conjunction with movement of the controller 25 inwhich the acceleration sensor 24 and the vibration motor 26 areembedded. If the sword character could strike an opponent fightercharacter, the vibration control data for the controller is calculateddepending on velocity of the sword character, hardness of the swordcharacter, and hardness of the armor of the opponent fighter. Then, thevibration control data for the controller is outputted from the controlunit 1 to the vibration mechanism, such as the vibration motor 26, ofthe controller 25. Because of this, it is possible to cause thecontroller 25 to vibrate.

(e) In the above described embodiment, a case is exemplified that anextent of vibration of the controller 25 changes depending on thesynthesis velocity magnitude. However, when it is judged by the controlunit 1 that the coordinate data within the display range of a movingobject correspond to the coordinate data within the display range ofanother object, the game program, which further includes an anotherobject moving state displaying function of consecutively displaying astate of another object moving at the velocity set by the velocitymagnitude data of another object on the image display unit with theimage data corresponding to another object and an object hardnessrecognizing function of causing the control unit 1 to recognize at leasteither hardness corresponding to an object moving at the velocity set bythe velocity magnitude data of the object and hardness corresponding toanother object, may be configured to cause the control unit 1 tocalculate the vibration control data for controlling vibration of thecontroller 25 depending on the velocity set by the velocity magnitudedata of the object, the velocity set by the velocity magnitude data ofanother object, and at least either hardness corresponding to the objectmoving at the velocity set by the velocity magnitude data of the objector hardness corresponding to another object.

In this case, a sword character of a first fighter is caused to move inconjunction with movement of the controller 25 in which the accelerationsensor 24 and the vibration motor 26 are embedded, and the vibrationcontrol data for the controller is calculated depending on velocity ofthe sword of the first fighter, velocity of a sword of a second fighter,hardness of the sword of the first fighter, and hardness of the sword ofthe second fighter when the sword character of the first fighter and thesword character of the second fighter make contact with each other.Then, the vibration control data for the controller is outputted fromthe control unit 1 to the vibration mechanism, such as the vibrationmotor 26, of the controller 25. Because of this, it is possible to causethe controller 25 to vibrate.

INDUSTRIAL APPLICABILITY

According to the present invention, it is possible to cause a controllerto vibrate by a vibration mechanism by causing an object to move basedon the acceleration data detected by an acceleration sensor when thecontroller in which the acceleration sensor and the vibration mechanismare embedded is moved and by causing a control unit to calculate thevibration control data when the moved object makes contact with anotherobject.

The terms of degree such as “substantially”, “about” and “approximately”as used herein mean a reasonable amount of deviation of the modifiedterm such that the end result is not significantly changed. These termsshould be construed as including a deviation of at least ±5% of themodified term if this deviation would not negate the meaning of the wordit modifies.

While only selected embodiments have been chosen to illustrate thepresent invention, it will be apparent to those skilled in the art fromthis disclosure that various changes and modifications can be madeherein without departing from the scope of the invention as defined inthe appended claims. Furthermore, the foregoing descriptions of theembodiments according to the present invention are provided forillustration only, and not for the purpose of limiting the invention asdefined by the appended claims and their equivalents.

1. A computer readable medium storing a computer program for a videogame, the computer program comprising: code for recognizing accelerationof an input unit; code for recognizing time duration of theacceleration; code for calculating speed of the input unit on the basisof the acceleration and the time duration; code for calculating firstspeed of a first object having a first range, on the basis of the speedof the input device; code for displaying the first object moving at thefirst speed of the first object and a second object having a secondrange, on the image display unit; code for judging whether or not thefirst range at least partially overlaps with the second range; and codefor vibrating the input unit on the basis of the speed of the firstobject, if the first range at least partially overlaps the second range.2. The computer readable medium according to claim 1, the computerprogram further comprising code for displaying the second object movingat second speed on the image display unit, and code for controlling thevibration of the input unit on the basis of the speed of the firstobject and the second speed of the second object.
 3. The computerreadable medium according to claim 1, the computer program furthercomprising code for recognizing at least one of first hardness of thefirst object and second hardness of the second object, the firsthardness and the second hardness being predetermined, and code forcontrolling the vibration of the input device on the basis of at leastone of the first hardness and the second hardness.
 4. The computerreadable medium according to claim 1, the computer program furthercomprising code for displaying the second object moving at the secondspeed on the image display unit; and code for recognizing at least oneof first hardness of the first object and second hardness of the secondobject, and code for controlling the vibration of the input unit on thebasis of at least one of the first hardness and the second hardness. 5.A game device for a video game in which a first and a second objects aredisplayed, the game device comprising: an acceleration data recognizingunit configured to recognize acceleration of an input unit; a timeduration data recognizing unit configured to recognize time duration ofthe acceleration; a velocity data calculating unit configured tocalculate speed of the input unit on the basis of the acceleration andthe time duration; an object moving velocity data calculating unitconfigured to first speed of a first object having a first range, on thebasis of the speed of the input device; an object moving statedisplaying unit configured to display the first object at the firstspeed of the first object and a second object having a second range, onthe image display unit; an object correspondence judging unit configuredto judge whether or not the first range at least partially overlaps withthe second range; and a vibration control data issuing unit configuredto vibrate the input unit on the basis of the speed of the first object,if the first range at least partially overlaps the second range.
 6. Amethod for controlling a video game, comprising: recognizingacceleration of an input unit; recognizing time duration of theacceleration; calculating speed of the input unit on the basis of theacceleration and the time duration; calculating first speed of a firstobject having a first range, on the basis of the speed of the inputdevice; displaying the first object at the first speed of the firstobject and a second object having a second range, on the image displayunit; judging whether or not the first range at least partially overlapswith the second range; and vibrating the input unit on the basis of thespeed of the first object, if the first range at least partiallyoverlaps the second range.